![Amazon CloudWatch Syntheticsについてまとめてみた](https://devio2023-media.developers.io/wp-content/uploads/2019/05/amazon-cloudwatch.png)
Amazon CloudWatch Syntheticsについてまとめてみた
こんにちは、CX事業本部 IoT事業部の若槻です。
今回は、Amazon CloudWatch Syntheticsについて基本的な事項をまとめてみました。
CloudWatch Syntheticsとは
CloudWatch Syntheticsは、WebページやAPIエンドポイントに対するSynthetic Monitoringを設定、自動実行できるマネージドサービスです。
Syntheticには「統合的な」「合成の」「人工的な」「模擬の」といった意味があり、Synthetic MonitoringはユーザーによるWebアクセスを模倣して実行しエンドポイントの可用性やレイテンシーなどを監視して、実際のエンドユーザーよりも早くシステムの問題を検出するための監視手法です。
Canary
CloudWatch SyntheticsではCanaryというリソースを作成して監視を行います。CanaryはNode.jsまたはPythonランタイムのLambda関数を作成してスクリプトを実行します。CanaryはNode.jsではPuppeteer、PythonではSeleniumを使用してChromium(ヘッドレスブラウザ)を操作し、指定されたエンドポイントURLにアクセスして監視を行います。
Canaryのスクリプトはフォーマットを使用すれば監視対象のURLを指定するだけで簡単に作成可能です。また自分でカスタムなスクリプトも作成可能です。
Canaryの実行結果、統計情報
CloudWatchのマネジメントコンソールからCanaryの個別の実行結果や統計情報を確認することができます。
複数のステップを設けることにより、一度のCanary実行で複数のエンドポイントを監視できます。既定では1実行1ステップです。ステップごとの監視結果を確認できます。
指定のタイミングでスクリーンショット取得も可能です。
Canaryのスクリプト実行のログも確認できます。Canaryが異常終了した際に調査を行うことができます。
Webサイトをブラウザで開いた際のHAR(HTTP Archive)ファイルも確認できます。各通信ごとのステータスやレイテンシーを確認できます。
スクリーンショット、ログ、HARファイルはアーティファクトとしてCanary作成時に指定したS3バケットにアップロードされます。(既定で30日間保管)
Canaryの発行するメトリクスとアラーム通知
Canaryは実行後に次のようなメトリクスをCloudWatchSynthetics
名前空間に発行します。
SuccessPercent
Duration
2xx
4xx
5xx
Failed
- ほか
可視化されたメトリクスはCanaryのコンソールからも確認できます。
これらのメトリクスに対してCloudWatch Alarmを設定することにより、Canary実行結果に応じてアラーム発生や通知を実装することができます。
アラーム通知の実装や動作に関しては下記エントリも合わせて参照ください。
- Amazon CloudWatch SyntheticsによるURL監視のアラームをメール通知してみた | DevelopersIO
- Amazon CloudWatch SyntheticsによるURL監視のアラームをメール通知してみた(AWS CDK) | DevelopersIO
- Amazon CloudWatch SyntheticsでCanary実行がタイムアウトした時にもアラームを発生させたい(AWS CDK) | DevelopersIO
ビジュアルモニタリング機能
Canaryでビジュアルモニタリングを設定することにより、ベースラインスクリーンショットに基づく視覚的な変化を検出することが出来ます。これによりHTTPステータスではなくWebページのビジュアルの不具合を監視できます。
ビジュアルモニタリング機能はコンソールからCanary作成時にブループリントが用意されています。
下記エントリも合わせてご確認ください。
- Amazon CloudWatch Syntheticsにビジュアルモニタリング機能が追加されました | DevelopersIO
- Amazon CloudWatch Syntheticsのビジュアルモニタリングで動的コンテンツも監視する | DevelopersIO
CloudWatch Synthetics Recorder
CloudWatch Synthetics RecorderはGoogle Chrome拡張です。これを使用して監視対象としたいウェブサイト上のアクションを記録し、Canaryのスクリプリを作成することができます。
下記エントリも合わせてご確認ください。
対応リージョン
2021年9月時点で、AWSの21のリージョンすべてで利用可能です。
料金
2021/9時点で、Canary実行ごとに下記の料金が掛かります。
リージョン | 料金(USD) |
---|---|
バージニア北部 | 0.0012 |
東京 | 0.0019 |
大阪 | 0.0019 |
シンガポール | 0.0017 |
また、Canary実行ごとに、Lambda関数の実行と、S3およびCloudWatch Logsへのログデータの書き込みの料金も別途掛かります。
その他のSynthetic Monitoringサービス
その他の主要なSynthetic Monitoringサービスとしては以下のようなものがあります。
参考
以上